﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BusinessObjects;
using DCMS_Framework;

namespace Interfaces {
  /// <summary>
  /// Interface for zipcode logic
  /// </summary>
  public interface IZipcodeLogic {

    CityZipcode GetZipcode( int id );

    /// <summary>
    /// Gets all zipcodes.
    /// </summary>
    /// <returns></returns>
    SortableBindingList<CityZipcode> GetAllZipcodes( );

    /// <summary>
    /// Gets the zipcodes by country.
    /// </summary>
    /// <param name="countryId">The country id.</param>
    /// <returns></returns>
    SortableBindingList<CityZipcode> GetZipcodesByCountry( int countryId );

    /// <summary>
    /// Saves the zipcode.
    /// </summary>
    /// <param name="zipcode">The zipcode.</param>
    void SaveZipcode( CityZipcode zipcode );

    /// <summary>
    /// Deletes the zipcode.
    /// </summary>
    /// <param name="zipcode">The zipcode.</param>
    void DeleteZipcode( CityZipcode zipcode );

    /// <summary>
    /// Gets the countries.
    /// </summary>
    /// <returns></returns>
    List<Country> GetCountries( );

  }
}
